// Jest 测试设置文件

// 设置测试超时时间
jest.setTimeout(30000)

// Mock Electron
jest.mock('electron', () => ({
  BrowserWindow: jest.fn().mockImplementation(() => ({
    loadURL: jest.fn(),
    show: jest.fn(),
    close: jest.fn(),
    focus: jest.fn(),
    isDestroyed: jest.fn().mockReturnValue(false),
    webContents: {
      on: jest.fn(),
      executeJavaScript: jest.fn(),
      session: {
        cookies: {
          get: jest.fn().mockResolvedValue([]),
          set: jest.fn().mockResolvedValue(undefined)
        }
      }
    },
    on: jest.fn()
  })),
  app: {
    on: jest.fn(),
    quit: jest.fn(),
    getPath: jest.fn().mockReturnValue('/mock/path')
  },
  ipcMain: {
    handle: jest.fn(),
    on: jest.fn()
  }
}))

// 全局测试变量
global.console = {
  ...console,
  // 在测试中静默某些日志
  log: jest.fn(),
  debug: jest.fn(),
  info: jest.fn(),
  warn: jest.fn(),
  error: jest.fn()
}
